home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / grafik / 3d & render tools / irit / man / man6 / sweepsrf.6 < prev    next >
Text File  |  1996-07-16  |  3KB  |  61 lines

  1. .TH SWEEPSRF
  2.  6 "IRIT Version 6.0" 
  3. .SH NAME
  4. SWEEPSRF
  5.  
  6.  
  7.  
  8.  SurfaceType SWEEPSRF( CurveType CrossSection, CurveType Axis,
  9.                      CurveType FrameCrv | VectorType FrameVec | ConstType OFF )
  10.  
  11. Constructs a generalized cylinder surface. This function sweeps a specified
  12. cross-section CrossSection along the provided Axis.
  13. By default, when frame specification is OFF, the orientation
  14. of the cross section is computed using the Axis curve tangent and
  15. normal. However, unlike the Frenet frame, attempt is made to minimize
  16. the normal change, as can happen along inflection points in Axis.
  17. If a VectorType FrameVec is provided as a frame orientation setting,
  18. it is used to fix the binormal direction to this value. In other words, the
  19. orientation frame has a fixed binormal. If a CurveType FrameCrv is
  20. specified as a frame orientation setting, this vector field curve is
  21. evaluated at each placement of the cross-section to yield the needed binormal.
  22.  
  23. The resulting sweep is only an approximation of the real sweep. The
  24. resulting sweep surface will not be exact, in general.
  25. Refinement of the axis curve at the proper location, where accuracy is
  26. important, should improve the accuracy of the output. The parametric domains
  27. of FrameCrv do not have to match the parametric domain of Axis,
  28. and its parametric domain is automatically made compatible by this function.
  29.  
  30. Example:
  31.  
  32.     Cross = arc( vector( 0.2, 0.0, 0.0 ),
  33.                  vector( 0.2, 0.2, 0.0 ),
  34.                  vector( 0.0, 0.2, 0.0 ) ) +
  35.             arc( vector( 0.0, 0.4, 0.0 ),
  36.                  vector( 0.1, 0.4, 0.0 ),
  37.                  vector( 0.1, 0.5, 0.0 ) ) +
  38.             arc( vector( 0.8, 0.5, 0.0 ),
  39.                  vector( 0.8, 0.3, 0.0 ),
  40.                  vector( 1.0, 0.3, 0.0 ) ) +
  41.             arc( vector( 1.0, 0.1, 0.0 ),
  42.                  vector( 0.9, 0.1, 0.0 ),
  43.                  vector( 0.9, 0.0, 0.0 ) ) +
  44.             ctlpt( E2, 0.2, 0.0 );
  45.     Axis = arc( vector( -1.0, 0.0, 0.0 ),
  46.                 vector(  0.0, 0.0, 0.1 ),
  47.                 vector(  1.0, 0.0, 0.0 ) );
  48.     Axis = crefine( Axis, FALSE, list( 0.25, 0.5, 0.75 ) );
  49.     Srf1 = SWEEPSRF( Cross, Axis, OFF );
  50.     Srf2 = SWEEPSRF( Cross, Axis, vector( 0.0, 1.0, 1.0 ) );
  51.     Srf3 = SWEEPSRF( Cross, Axis,
  52.                      cbezier( list( ctlpt( E3,  1.0, 0.0, 0.0 ),
  53.                                     ctlpt( E3,  0.0, 1.0, 0.0 ),
  54.                                     ctlpt( E3, -1.0, 0.0, 0.0 ) ) ) );
  55.  
  56. constructs a rounded rectangle cross-section and sweeps it along an arc,
  57. while orienting it several ways. The axis curve Axis is manually
  58. refined to better approximate the requested shape.
  59.  
  60. See also SWPSCLSRF for sweep with scale.
  61.